<!DOCTYPE html>
<html>
	<head>
        <title> 函数练习 </title>
        <meta charset="utf-8" />
    </head>
    <body>
    </body>
    <script>
        //内置函数
        /*alert("hello");
        document.write("hello");
        console.log("hello");
        parseInt("10");
        parseFloat("3.1415926");
        String();
        Number();
        Boolean();*/
        /**
         * 自定义函数分类
         * 1.普通函数定义，function 函数名(参数){函数体}
         * 2.把函数赋值给变量，通过变量调用函数
         * 3.匿名函数
        */
        //例子-function关键字定义函数
        /*function sayHello(username){
            alert("hello" + userName);
        }
        sayHello("zhangsan");
        //例子-函数表达式定义函数
        var showAge = function(age){
            return "年龄为：" + age;
            //var str = "年龄为：" + age;若没有返回值，会?
        }
        console.log(showAge(20));
        //例1-匿名函数
        (function(userName){
            alert("hello" + userName);
        })("zhangsan");
        //例2
        var add = function(a, b){
            return a + b;
        };
        var sum = ad(1, 2);
        alert(add(1, 2));*/
        /**
         * 定义函数实现向页面上输出表格
         * 表格的行数、列数作为函数的参数传入
         * 完成函数调用
         * createTable(6,6);
        */
       /*function createTable([row,col]){
           document.write('<table border="1" cellspacing="0">');
           for (var i = 0; i < row; i++) {
               document.write("<tr>");
               for (var j = 0; j < col; j++) {
                   document.write("<td>&nbsp;</td>");
                }
           }
           return true;
       }
       var result = createTabla(6,6);
       console.log(result);*/
       //函数作为参数
       /*var first = function(){
           console.log("first excuted");
       }
       var second = function(){
           console.log("second excuted");
       }
       function showFun(fn1,fn2){
           fn1();
           fn2();
       }
       showFun(first,second);*/
       //
       /*function sum(x,y){
           return x+y;
       }
       document.write(sum(2)+"<br/>");
       document.write(sum(2,5)+"<br/>");
       document.write(sum(2,5,9)+"<br/>");*/
       //函数的返回值
       /*function Max(x, y){
           //函数内定义的变量，它的作用范围就是当前函数
           var max;
           max = x > y ? x : y;
           return max;
       }
       var m;
       m = Max(100, 200);
       alert("Max(100, 200)" + m);
       //全局变量
       var max = Max(10,5);
       console.log("Max(10,5)=" + max);*/
       var userName="zhangsan";
       /*在JavaScript执行过程中，使用变量时逐级作用域来查找变量，JS中作用域是以
       函数为单位的*/
       function showName(){
        (function(){
           var userName="lisi";
           //？没有使用var关键字声明的变量，会直接自动提升为全局变量
           console.log(userName);
       })();
       }
    </script>
</html>